// 定义store
import {defineStore} from "pinia"
// 引入完整的动态路由表
import routes from "@/router/generouteRoutes"
// 引入发送请求获取菜单的方法
import * as api from "@/api/permission"
// 引入递归求routes的方法
import recursionRoutes from "@/utils/recursionRoutes"
// 引入动态路由
import dynamicRoutes from "@/router/dynamicRoutes"
// 引入静态路由
import staticRoutes from "@/router/staticRoute"
// 引入路由对象
import router from "@/router"

export const usePermission = defineStore('permission',{
    state(){
        return {
            menulist:[],
            logout: false,//是否退出
        }
    },
    actions:{
        fetch_menulist(){
            // 发起请求，获取菜单
             return api.getMenuListApi()
            .then(res=>{
                // console.log(res);
                // console.log(routes);
                // 已经获取了用户的路由
                let userRoutes = recursionRoutes(res.data.menuList,routes)
                // console.log(res.data.menuList);
                // console.log(userRoutes);
                // 给menulist赋值
                this.menulist = userRoutes;
                // console.log(this.menulist);
                // 开始动态添加路由
                // 1.先从动态路由中，找到路径是"/"的路由对象
                let target = dynamicRoutes.find(route=>route.path === "/");
                // 2.将用户路由变成他的孩子
                target.children = userRoutes
                // 3.静态路由也要添加到dynamicRoutes的孩子里面
                target.children = [...target.children,...staticRoutes]
                // console.log(target);
                // 4.使用addRoute方法，将dynamicRoutesi添加到路由的routes配置中
                // console.log(dynamicRoutes);
                router.addRoute(target)
            })
        }
    }
})